Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge Development to Main to close Issues #119

Merged
merged 83 commits into from
Sep 26, 2022
Merged

Merge Development to Main to close Issues #119

merged 83 commits into from
Sep 26, 2022

Conversation

stratofax
Copy link
Collaborator

@stratofax stratofax commented Sep 22, 2022

This version (0.1.3) of BallotMaker generates ballots with hidden widgets, thus completing the work for Milestone 2. Generate ballot PDFs with embedded form objects. This merge to main will close the associated issues and milestones.

Closes BallotLab milestone #2

BallotStyles don't drive the contests.
Fixes BallotLab #85.

This isn't quite right: fails if a slate has candidates from different parties.
Deferring on that case for now.
Mark write-in status as boolean (matching the contents of the EDF).
No issue attached.
The error was introduced in the process of folding write-ins into contests.
- Remove convoluted extra step that makes it harder to do this correctly.
- Candidate names are grouped in arrays. Now do the same for parties.
- Use 'is_write_in' for the write-in boolean field.
Handles case where candidates in a slate have different parties.
Significant update of contests:
- Include '@id's of ballot measure contests (candidates already happening).
- Include '@id's of candidate and ballot measure contest selections.
- Updates and bug fixes for write-ins in candidate contests.
- Multi-candidate slates:
  - Combine names of candidates into list.
    Names are stored in lists even when there is only one candidate.
  - Combine parties of candidate IFF they are the same.
    Parties are always stored in lists, and empty if there is no party.
- Candidate parties are now a list.
- 'write_in' -> 'is_write_in'
These are NOT intended to follow any standard, merely to aid in debugging.
There's an ongoing conversation about the format of human readable IDs.
stratofax and others added 7 commits September 16, 2022 21:29
Extraction code validates and generates ballots, passes GitHub Actions testing, but pytest still fails locally. Good enough for a merge.
* Update version to 0.1.3 upon milestone completion

* Update CHANGELOG.md

Co-authored-by: Ion Y <[email protected]>

* Update CHANGELOG.md

Co-authored-by: Ion Y <[email protected]>

* Update CHANGELOG.md

Co-authored-by: Ion Y <[email protected]>

* Use short dash in header

* Remove unneeded files

Co-authored-by: Ion Y <[email protected]>
@stratofax stratofax self-assigned this Sep 22, 2022
@stratofax stratofax added the enhancement New feature or request label Sep 22, 2022
@ion-oset
Copy link
Collaborator

ion-oset commented Sep 22, 2022

Checklist to finish before hitting merge.

  • Version updated in:
    • pyproject.toml
    • CHANGELOG.md
  • Tag development branch as version (v0.1.3).
  • Close all remaining milestone issues, or remove them from the milestone link them to this PR.

After the merge is successful and tests all pass

  • Tag main branch as version (v0.1.3).

EDIT: As discussed on the call: the tag should be on main after the merge.

Notes:

  • This should be a regular merge not a rebase merge.

  • We should come up with standard message for closing milestones. Something like:

    Closes BallotLab milestone #2: https://github.com/TrustTheVote-Project/BallotLab/milestone/2
    

@stratofax
Copy link
Collaborator Author

@ion-oset, handy and useful checklist, worth preserving on DevComm.

I believe the Issues associated with this PR will close automatically when the PR is merged. Does this address the last item in the checklist above?

Close all remaining milestone issues, or remove them from the milestone.

@ion-oset
Copy link
Collaborator

ion-oset commented Sep 23, 2022

Some how I missed the linked issues - yes that would address closing them! I've updated the check list.

I've unchecked Tag development branch as version (v0.1.3) though. I don't see any tags on the upstream repository

@stratofax
Copy link
Collaborator Author

The tags exist on my local copy of the repo on the development branch.

[I] neil@Neils-Mac-mini:~/r/t/BallotLab|development✓
➤ git tag --list
v0.1.2
v0.1.3

@stratofax stratofax merged commit 9b34c45 into main Sep 26, 2022
@stratofax
Copy link
Collaborator Author

I think I should delete the development branch, having reached this milestone. We can then create new branches for the next milestone. Thoughts?

@stratofax
Copy link
Collaborator Author

Tagged with lightweight tag v0.1.3: Tags · TrustTheVote-Project/BallotLab

@ion-oset
Copy link
Collaborator

I think I should delete the development branch, having reached this milestone. We can then create new branches for the next milestone. Thoughts?

Move development to be on what is now main.

     git branch -f main development

The next milestone starts from there, and new branches are based on development, not on main.

The purpose of a development branch is as the place to combine all accepted branches that are part of a milestone. When they are stable and ready they merge into the stable branch (main).

@stratofax
Copy link
Collaborator Author

I agree with the premise of the development branch, I'm proposing one option to implement this -- instead of having a long running development branch, create branches for each milestone, merge them onto main when the milestone is completed, delete the milestone branch, rinse, repeat.

You're proposing another option -- maintain the development branch as a persistent target for work around a specific milestone. When we complete a milestone, use the git branch --force command to ensure that the development branch is at exactly the same point as main.

Note: I checked the git documentation and it seems like the way to do what you describe,

Move development to be on what is now main

would look like this:

     git branch -f development main 

where the branchname is development and the start-point is main

Here's the git documentation command template:

git branch [-f] <branchname> [<start-point>]

So, this post is my attempt to make sure I understand your implementation strategy, as well as mine.

Both strategies share essential features:

  • there's a primary development branch where all the work for a milestone lands before it's merged to main
  • When we reach a milestone and merge to main we ensure that the development branch and main are identical.

The difference is (as far as I can tell) exactly how we ensure that main and the milestone development branch are identical immedately after merging. You suggest using a git command on a long-lived development branch; I suggest creating a new branch off of main for the upcoming milestone.

Let's discuss this at today's meeting.

@ion-oset
Copy link
Collaborator

ion-oset commented Sep 27, 2022

Note: I checked the git documentation and it seems like the way to do what you describe,

Move development to be on what is now main

would look like this:

git branch -f development main 

where the branch name is development and the start-point is main

You are correct. I want to note that I typed that wrong even after I looked it up and noted that it was the way it was. It's the reverse of nearly every other branch option, where the target branch name comes at the end. Git is is many things but consistent is not one of them.

@ion-oset
Copy link
Collaborator

ion-oset commented Sep 27, 2022

So, this post is my attempt to make sure I understand your implementation strategy, as well as mine.

I've moved this to the branching and merging strategy discussion so whatever we decide doesn't get lost on a closed PR thread.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment